/**
 * This file is part of 1genia trampoline
 * Copyright (C) 2007 1genia (contact@1genia.com)
 *
 * This library is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; version 3 of the License. 
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details. 
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; see the file COPYING.TXT.  If not,
 * write to the Free Software Foundation, Inc., 51 Franklin Street,
 * Fifth Floor, Boston, MA 02110-1301, USA. 
 **/
package com.genia.toolbox.web.gwt.basics.bean;

import com.genia.toolbox.basics.bean.DataContainer;
import com.genia.toolbox.web.gwt.basics.client.bean.GwtFileInformation;

/**
 * bean used to keep previews of uploaded files.
 */
public interface FileInformation
    extends DataContainer
{
  /**
   * getter for the gwtFileInformation property.
   * 
   * @return the gwtFileInformation
   */
  public abstract GwtFileInformation getGwtFileInformation();



  /**
   * returns an identifier representing the uploaded {@link java.io.File} or
   * <code>null</code> if the file is newly uploaded.
   * 
   * @return an identifier representing the uploaded {@link java.io.File} or
   *         <code>null</code> if the file is newly uploaded
   */
  public abstract Long getPermanentIdentifier();



  /**
   * set an identifier representing the uploaded {@link java.io.File} or
   * <code>null</code> if the file is newly uploaded.
   * 
   * @param identifier
   *          an identifier representing the uploaded {@link java.io.File} or
   *          <code>null</code> if the file is newly uploaded
   */
  public abstract void setPermanentIdentifier(Long identifier);



  /**
   * getter for the dataContainer property.
   * 
   * @return the dataContainer
   */
  public abstract DataContainer getDataContainer();



  /**
   * setter for the dataContainer property.
   * 
   * @param dataContainer
   *          the dataContainer to set
   */
  public abstract void setDataContainer(DataContainer dataContainer);

}
